Business intelligence systems began largely as decision support systems (DSS) and executive information systems (EIS). Decision support systems (DSS) and executive information systems (EIS) were value added systems that provided additional information from existing on-line transactional processing (OLTP) systems.
As business intelligence systems developed, they integrated decision support system (DSS) functionality with executive information system (EIS) functionality, and added on-line analytical processing (OLAP) tools and management reporting tools. These hybrid business intelligence systems were gradually moved from a main-frame environment to a distributed server/desktop environment to allow greater user access.
More recently, the advent of centralized data warehouses and datamarts have created a dramatic increase in available data waiting to be analyzed, exploited and distributed within an organization. Such data warehouses and datamarts, however, were typically optimized for information delivery rather than transactional processing. As a result, data warehouses and datamarts offered only limited solutions for turning stored data into useful and strategic tactical information. During this same time, business intelligence systems gained prominence by offering sophisticated analysis tools for analyzing large amounts of stored information to support effective planning and decision-making within an organization.
Within business intelligence systems and other analytical processing tools, a dataset is typically provided to perform requested database queries. The dataset must be able to perform all necessary database operations, such as, for example, fetch, sort, index, and search operations. In addition, the dataset must be able to perform the operations in a specified order. As a result, all possible combinations of database operations must be identified and programmed into the dataset. This customization of the dataset is time-consuming and costly to implement. Moreover, provision of additional capabilities to enhance an existing system requires further customization of the dataset.